package daoImpl;

import java.util.List;

import javax.persistence.EntityManager;

import modelo.Pista;
import modelo.Reserva;
import dao.DAOGeneral;
import dao.IPistaDAO;


public class PistaDAOImpl extends DAOGeneral implements IPistaDAO {
	private EntityManager em;

	public PistaDAOImpl() {
		em = getEntityManager();
	}

	public void insertar(Pista pis) {
		em.getTransaction().begin();
		em.persist(pis);
		em.getTransaction().commit();


	}

	public Pista update(Pista pis) {
		em.getTransaction().begin();
		Pista pisx = em.find(Pista.class, pis.getIdPista());
		pisx.setSrcImagen(pis.getSrcImagen());
		if(pis.getDeporte()!=null)
		{
			pisx.setDeporte(pis.getDeporte());
		}
		if(pis.getReservas()!=null)
		{
			pisx.setReservas(pis.getReservas());
		}
		 em.getTransaction().commit();
		 return em.find(Pista.class, pis.getIdPista());
	}

	public void borrar(Pista pis) {
		em.remove(pis);
	}

	public Pista seleccionarPorId(int id) {
		return em.find(Pista.class, id);
	}
	
	@SuppressWarnings("unchecked")
	public List<Reserva> seleccionarReservasPorPista(int id_pista)
	{
		return (List<Reserva>)em.createNamedQuery("Reserva.seleccionarReservasPorPista").setParameter("id_pista", id_pista).getResultList();
	}
	
	@SuppressWarnings("unchecked")
	public List<Pista> seleccionarTodasPistas()
	{
		return (List<Pista>)em.createNamedQuery("Pista.seleccionarTodasPistas").getResultList();
	}
}